home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Programming / LEDA / prog / basic / matrix.c < prev    next >
C/C++ Source or Header  |  1994-08-05  |  989b  |  64 lines

  1. #include <LEDA/vector.h>
  2. #include <LEDA/matrix.h>
  3. #include <LEDA/list.h>
  4.  
  5.  
  6.  
  7. main()
  8.  
  9.   int d = read_int("dimension = ");
  10.  
  11.   matrix       A(d,d);
  12.   vector       b(d);
  13.   vector       x(d);
  14.  
  15.   list<vector> B;  // List of b-vectors
  16.   list<vector> X;  // List of x-vectors
  17.  
  18.   printf("give (%d x %d) - matrix A:\n",d,d);
  19.  
  20.   cin >> A;
  21.  
  22.   cout << "A = \n";
  23.   cout << A << "\n";
  24.   newline;
  25.  
  26.   cout << "A.trans() = \n";
  27.   cout << A.trans() << "\n";
  28.   newline;
  29.  
  30.  
  31.   cout << "A.inv() = \n";
  32.   cout << A.inv() << "\n";
  33.   newline;
  34.  
  35.   cout << "A*A.inv() = \n";
  36.   cout << A*A.inv() << "\n";
  37.   newline;
  38.   
  39.  
  40.   cout << "We solve the system of linear equations A*x = b.\n";
  41.   cout << "Give a list of vectors b (terminated by ctrl-d):\n";
  42.  
  43.   while (cin >> b) B.append(b);
  44.   newline;
  45.  
  46.   B.print("b's = ",'\n');
  47.   newline;
  48.   newline;
  49.  
  50.   forall(b,B)  X.append(A.solve(b));
  51.   
  52.   X.print("x's = ",'\n');
  53.   newline;
  54.   newline;
  55.  
  56.  
  57.   cout << "A*x's = \n";
  58.   forall(x,X) cout << A*x << "\n";
  59.   newline;
  60.  
  61.   return 0;
  62. }
  63.